↳ ITRS
↳ ITRStoQTRSProof
z
cond(TRUE, x, y) → +@z(1@z, minus(x, +@z(y, 1@z)))
cond(FALSE, x, y) → 0@z
minus(x, y) → cond(>=@z(x, +@z(y, 1@z)), x, y)
cond(TRUE, x0, x1)
cond(FALSE, x0, x1)
minus(x0, x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
cond(true, x, y) → plus_int(pos(s(0)), minus(x, plus_int(pos(s(0)), y)))
cond(false, x, y) → pos(0)
minus(x, y) → cond(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
COND(true, x, y) → PLUS_INT(pos(s(0)), minus(x, plus_int(pos(s(0)), y)))
COND(true, x, y) → MINUS(x, plus_int(pos(s(0)), y))
COND(true, x, y) → PLUS_INT(pos(s(0)), y)
MINUS(x, y) → COND(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
MINUS(x, y) → GREATEREQ_INT(x, plus_int(pos(s(0)), y))
MINUS(x, y) → PLUS_INT(pos(s(0)), y)
PLUS_INT(pos(x), neg(y)) → MINUS_NAT(x, y)
PLUS_INT(neg(x), pos(y)) → MINUS_NAT(y, x)
PLUS_INT(neg(x), neg(y)) → PLUS_NAT(x, y)
PLUS_INT(pos(x), pos(y)) → PLUS_NAT(x, y)
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
MINUS_NAT(s(x), s(y)) → MINUS_NAT(x, y)
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
cond(true, x, y) → plus_int(pos(s(0)), minus(x, plus_int(pos(s(0)), y)))
cond(false, x, y) → pos(0)
minus(x, y) → cond(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
COND(true, x, y) → PLUS_INT(pos(s(0)), minus(x, plus_int(pos(s(0)), y)))
COND(true, x, y) → MINUS(x, plus_int(pos(s(0)), y))
COND(true, x, y) → PLUS_INT(pos(s(0)), y)
MINUS(x, y) → COND(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
MINUS(x, y) → GREATEREQ_INT(x, plus_int(pos(s(0)), y))
MINUS(x, y) → PLUS_INT(pos(s(0)), y)
PLUS_INT(pos(x), neg(y)) → MINUS_NAT(x, y)
PLUS_INT(neg(x), pos(y)) → MINUS_NAT(y, x)
PLUS_INT(neg(x), neg(y)) → PLUS_NAT(x, y)
PLUS_INT(pos(x), pos(y)) → PLUS_NAT(x, y)
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
MINUS_NAT(s(x), s(y)) → MINUS_NAT(x, y)
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
cond(true, x, y) → plus_int(pos(s(0)), minus(x, plus_int(pos(s(0)), y)))
cond(false, x, y) → pos(0)
minus(x, y) → cond(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
cond(true, x, y) → plus_int(pos(s(0)), minus(x, plus_int(pos(s(0)), y)))
cond(false, x, y) → pos(0)
minus(x, y) → cond(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
No rules are removed from R.
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
POL(GREATEREQ_INT(x1, x2)) = 2·x1 + x2
POL(neg(x1)) = x1
POL(s(x1)) = 2·x1
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
cond(true, x, y) → plus_int(pos(s(0)), minus(x, plus_int(pos(s(0)), y)))
cond(false, x, y) → pos(0)
minus(x, y) → cond(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
No rules are removed from R.
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
POL(GREATEREQ_INT(x1, x2)) = 2·x1 + x2
POL(pos(x1)) = x1
POL(s(x1)) = 2·x1
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
MINUS_NAT(s(x), s(y)) → MINUS_NAT(x, y)
cond(true, x, y) → plus_int(pos(s(0)), minus(x, plus_int(pos(s(0)), y)))
cond(false, x, y) → pos(0)
minus(x, y) → cond(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
MINUS_NAT(s(x), s(y)) → MINUS_NAT(x, y)
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
MINUS_NAT(s(x), s(y)) → MINUS_NAT(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
cond(true, x, y) → plus_int(pos(s(0)), minus(x, plus_int(pos(s(0)), y)))
cond(false, x, y) → pos(0)
minus(x, y) → cond(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ UsableRulesProof
COND(true, x, y) → MINUS(x, plus_int(pos(s(0)), y))
MINUS(x, y) → COND(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
cond(true, x, y) → plus_int(pos(s(0)), minus(x, plus_int(pos(s(0)), y)))
cond(false, x, y) → pos(0)
minus(x, y) → cond(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ UsableRulesProof
COND(true, x, y) → MINUS(x, plus_int(pos(s(0)), y))
MINUS(x, y) → COND(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ UsableRulesProof
COND(true, x, y) → MINUS(x, plus_int(pos(s(0)), y))
MINUS(x, y) → COND(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ QDP
↳ RemovalProof
↳ Narrowing
↳ UsableRulesProof
COND(true, x, y, x_removed) → MINUS(x, plus_int(x_removed, y), x_removed)
MINUS(x, y, x_removed) → COND(greatereq_int(x, plus_int(x_removed, y)), x, y, x_removed)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ QDP
↳ Narrowing
↳ UsableRulesProof
COND(true, x, y, x_removed) → MINUS(x, plus_int(x_removed, y), x_removed)
MINUS(x, y, x_removed) → COND(greatereq_int(x, plus_int(x_removed, y)), x, y, x_removed)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(plus_nat(s(0), x1))), y0, pos(x1))
MINUS(y0, neg(x1)) → COND(greatereq_int(y0, minus_nat(s(0), x1)), y0, neg(x1))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ UsableRulesProof
COND(true, x, y) → MINUS(x, plus_int(pos(s(0)), y))
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(plus_nat(s(0), x1))), y0, pos(x1))
MINUS(y0, neg(x1)) → COND(greatereq_int(y0, minus_nat(s(0), x1)), y0, neg(x1))
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(plus_nat(0, x1)))), y0, pos(x1))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ UsableRulesProof
COND(true, x, y) → MINUS(x, plus_int(pos(s(0)), y))
MINUS(y0, neg(x1)) → COND(greatereq_int(y0, minus_nat(s(0), x1)), y0, neg(x1))
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(plus_nat(0, x1)))), y0, pos(x1))
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ UsableRulesProof
COND(true, x, y) → MINUS(x, plus_int(pos(s(0)), y))
MINUS(y0, neg(x1)) → COND(greatereq_int(y0, minus_nat(s(0), x1)), y0, neg(x1))
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
COND(true, y0, pos(x1)) → MINUS(y0, pos(plus_nat(s(0), x1)))
COND(true, y0, neg(x1)) → MINUS(y0, minus_nat(s(0), x1))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ UsableRulesProof
MINUS(y0, neg(x1)) → COND(greatereq_int(y0, minus_nat(s(0), x1)), y0, neg(x1))
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
COND(true, y0, pos(x1)) → MINUS(y0, pos(plus_nat(s(0), x1)))
COND(true, y0, neg(x1)) → MINUS(y0, minus_nat(s(0), x1))
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesProof
COND(true, y0, pos(x1)) → MINUS(y0, pos(plus_nat(s(0), x1)))
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesProof
COND(true, y0, pos(x1)) → MINUS(y0, pos(plus_nat(s(0), x1)))
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
plus_nat(s(x), y) → s(plus_nat(x, y))
plus_nat(0, x) → x
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
COND(true, y0, pos(x1)) → MINUS(y0, pos(plus_nat(s(0), x1)))
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
plus_nat(s(x), y) → s(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(0, x0)
plus_nat(s(x0), x1)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
COND(true, y0, pos(x1)) → MINUS(y0, pos(s(plus_nat(0, x1))))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesProof
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
COND(true, y0, pos(x1)) → MINUS(y0, pos(s(plus_nat(0, x1))))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
plus_nat(s(x), y) → s(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(0, x0)
plus_nat(s(x0), x1)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
COND(true, y0, pos(x1)) → MINUS(y0, pos(s(plus_nat(0, x1))))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
plus_nat(0, x) → x
plus_nat(0, x0)
plus_nat(s(x0), x1)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
COND(true, y0, pos(x1)) → MINUS(y0, pos(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ UsableRulesProof
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
COND(true, y0, pos(x1)) → MINUS(y0, pos(s(x1)))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
plus_nat(0, x) → x
plus_nat(0, x0)
plus_nat(s(x0), x1)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesProof
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
COND(true, y0, pos(x1)) → MINUS(y0, pos(s(x1)))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
plus_nat(0, x0)
plus_nat(s(x0), x1)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
MINUS(y0, pos(x1)) → COND(greatereq_int(y0, pos(s(x1))), y0, pos(x1))
COND(true, y0, pos(x1)) → MINUS(y0, pos(s(x1)))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
MINUS(z0, pos(s(z1))) → COND(greatereq_int(z0, pos(s(s(z1)))), z0, pos(s(z1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
COND(true, y0, pos(x1)) → MINUS(y0, pos(s(x1)))
MINUS(z0, pos(s(z1))) → COND(greatereq_int(z0, pos(s(s(z1)))), z0, pos(s(z1)))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
COND(true, z0, pos(s(z1))) → MINUS(z0, pos(s(s(z1))))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
MINUS(z0, pos(s(z1))) → COND(greatereq_int(z0, pos(s(s(z1)))), z0, pos(s(z1)))
COND(true, z0, pos(s(z1))) → MINUS(z0, pos(s(s(z1))))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
MINUS(z0, pos(s(s(z1)))) → COND(greatereq_int(z0, pos(s(s(s(z1))))), z0, pos(s(s(z1))))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
COND(true, z0, pos(s(z1))) → MINUS(z0, pos(s(s(z1))))
MINUS(z0, pos(s(s(z1)))) → COND(greatereq_int(z0, pos(s(s(s(z1))))), z0, pos(s(s(z1))))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
COND(true, z0, pos(s(s(z1)))) → MINUS(z0, pos(s(s(s(z1)))))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ QDP
↳ UsableRulesProof
MINUS(z0, pos(s(s(z1)))) → COND(greatereq_int(z0, pos(s(s(s(z1))))), z0, pos(s(s(z1))))
COND(true, z0, pos(s(s(z1)))) → MINUS(z0, pos(s(s(s(z1)))))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ UsableRulesProof
COND(true, y0, neg(x1)) → MINUS(y0, minus_nat(s(0), x1))
MINUS(y0, neg(x1)) → COND(greatereq_int(y0, minus_nat(s(0), x1)), y0, neg(x1))
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ UsableRulesProof
COND(true, y0, neg(x1)) → MINUS(y0, minus_nat(s(0), x1))
MINUS(y0, neg(x1)) → COND(greatereq_int(y0, minus_nat(s(0), x1)), y0, neg(x1))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ MNOCProof
↳ SemLabProof
↳ UsableRulesProof
COND(true, y0, neg(x1)) → MINUS(y0, minus_nat(s(0), x1))
MINUS(y0, neg(x1)) → COND(greatereq_int(y0, minus_nat(s(0), x1)), y0, neg(x1))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ SemLabProof
↳ UsableRulesProof
COND(true, y0, neg(x1)) → MINUS(y0, minus_nat(s(0), x1))
MINUS(y0, neg(x1)) → COND(greatereq_int(y0, minus_nat(s(0), x1)), y0, neg(x1))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
COND.0-0-0(true., y0, neg.0(x1)) → MINUS.0-0(y0, minus_nat.0-0(s.1(0.), x1))
MINUS.0-0(y0, neg.0(x1)) → COND.0-0-0(greatereq_int.0-0(y0, minus_nat.0-0(s.1(0.), x1)), y0, neg.0(x1))
MINUS.0-0(y0, neg.1(x1)) → COND.0-0-0(greatereq_int.0-0(y0, minus_nat.0-1(s.1(0.), x1)), y0, neg.1(x1))
MINUS.1-0(y0, neg.0(x1)) → COND.0-1-0(greatereq_int.1-0(y0, minus_nat.0-0(s.1(0.), x1)), y0, neg.0(x1))
MINUS.1-0(y0, neg.1(x1)) → COND.0-1-0(greatereq_int.1-0(y0, minus_nat.0-1(s.1(0.), x1)), y0, neg.1(x1))
COND.0-0-0(true., y0, neg.1(x1)) → MINUS.0-0(y0, minus_nat.0-1(s.1(0.), x1))
COND.0-1-0(true., y0, neg.0(x1)) → MINUS.1-0(y0, minus_nat.0-0(s.1(0.), x1))
COND.0-1-0(true., y0, neg.1(x1)) → MINUS.1-0(y0, minus_nat.0-1(s.1(0.), x1))
minus_nat.1-0(0., s.1(y)) → neg.0(s.1(y))
greatereq_int.0-0(neg.1(x), pos.0(s.0(y))) → false.
greatereq_int.0-0(neg.1(x), pos.0(s.1(y))) → false.
minus_nat.1-0(0., s.0(y)) → neg.0(s.0(y))
minus_nat.0-0(s.1(x), s.1(y)) → minus_nat.1-1(x, y)
greatereq_int.0-0(pos.1(0.), pos.0(s.0(y))) → false.
greatereq_int.0-0(pos.0(x), neg.0(y)) → true.
minus_nat.0-0(s.1(x), s.0(y)) → minus_nat.1-0(x, y)
greatereq_int.0-0(pos.0(s.1(x)), pos.0(s.1(y))) → greatereq_int.0-0(pos.1(x), pos.1(y))
greatereq_int.0-0(neg.0(s.1(x)), neg.0(s.1(y))) → greatereq_int.0-0(neg.1(x), neg.1(y))
greatereq_int.0-0(pos.1(0.), pos.0(s.1(y))) → false.
greatereq_int.0-0(neg.0(s.0(x)), pos.1(0.)) → false.
greatereq_int.0-0(pos.1(x), neg.1(y)) → true.
minus_nat.1-1(0., 0.) → pos.1(0.)
greatereq_int.0-0(neg.0(s.1(x)), pos.1(0.)) → false.
greatereq_int.0-0(neg.0(s.0(x)), neg.0(s.0(y))) → greatereq_int.0-0(neg.0(x), neg.0(y))
minus_nat.0-1(s.0(x), 0.) → pos.0(s.0(x))
greatereq_int.0-0(pos.0(s.1(x)), pos.0(s.0(y))) → greatereq_int.0-0(pos.1(x), pos.0(y))
greatereq_int.0-0(pos.0(s.0(x)), pos.0(s.1(y))) → greatereq_int.0-0(pos.0(x), pos.1(y))
greatereq_int.0-0(neg.0(s.0(x)), neg.1(0.)) → false.
greatereq_int.0-0(pos.1(x), neg.0(y)) → true.
greatereq_int.0-0(pos.0(x), neg.1(y)) → true.
greatereq_int.0-0(neg.1(0.), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(x), pos.0(s.0(y))) → false.
greatereq_int.0-0(pos.0(s.0(x)), pos.0(s.0(y))) → greatereq_int.0-0(pos.0(x), pos.0(y))
greatereq_int.0-0(pos.1(x), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(s.1(x)), neg.0(s.0(y))) → greatereq_int.0-0(neg.1(x), neg.0(y))
greatereq_int.0-0(neg.0(s.0(x)), neg.0(s.1(y))) → greatereq_int.0-0(neg.0(x), neg.1(y))
minus_nat.0-1(s.1(x), 0.) → pos.0(s.1(x))
minus_nat.0-0(s.0(x), s.0(y)) → minus_nat.0-0(x, y)
greatereq_int.0-0(pos.0(x), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(s.1(x)), neg.1(0.)) → false.
greatereq_int.0-0(neg.1(0.), neg.1(y)) → true.
minus_nat.0-0(s.0(x), s.1(y)) → minus_nat.0-1(x, y)
greatereq_int.0-0(neg.1(0.), neg.0(y)) → true.
greatereq_int.0-0(neg.0(x), pos.0(s.1(y))) → false.
minus_nat.1-1(0., 0.)
minus_nat.1-0(0., s.0(x0))
minus_nat.1-0(0., s.1(x0))
minus_nat.0-1(s.0(x0), 0.)
minus_nat.0-1(s.1(x0), 0.)
minus_nat.0-0(s.0(x0), s.0(x1))
minus_nat.0-0(s.0(x0), s.1(x1))
minus_nat.0-0(s.1(x0), s.0(x1))
minus_nat.0-0(s.1(x0), s.1(x1))
greatereq_int.0-0(pos.0(x0), pos.1(0.))
greatereq_int.0-0(pos.1(x0), pos.1(0.))
greatereq_int.0-0(neg.1(0.), pos.1(0.))
greatereq_int.0-0(neg.1(0.), neg.0(x0))
greatereq_int.0-0(neg.1(0.), neg.1(x0))
greatereq_int.0-0(pos.0(x0), neg.0(x1))
greatereq_int.0-0(pos.0(x0), neg.1(x1))
greatereq_int.0-0(pos.1(x0), neg.0(x1))
greatereq_int.0-0(pos.1(x0), neg.1(x1))
greatereq_int.0-0(pos.1(0.), pos.0(s.0(x0)))
greatereq_int.0-0(pos.1(0.), pos.0(s.1(x0)))
greatereq_int.0-0(neg.0(x0), pos.0(s.0(x1)))
greatereq_int.0-0(neg.0(x0), pos.0(s.1(x1)))
greatereq_int.0-0(neg.1(x0), pos.0(s.0(x1)))
greatereq_int.0-0(neg.1(x0), pos.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), pos.1(0.))
greatereq_int.0-0(neg.0(s.1(x0)), pos.1(0.))
greatereq_int.0-0(neg.0(s.0(x0)), neg.1(0.))
greatereq_int.0-0(neg.0(s.1(x0)), neg.1(0.))
greatereq_int.0-0(pos.0(s.0(x0)), pos.0(s.0(x1)))
greatereq_int.0-0(pos.0(s.0(x0)), pos.0(s.1(x1)))
greatereq_int.0-0(pos.0(s.1(x0)), pos.0(s.0(x1)))
greatereq_int.0-0(pos.0(s.1(x0)), pos.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), neg.0(s.0(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), neg.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.1(x0)), neg.0(s.0(x1)))
greatereq_int.0-0(neg.0(s.1(x0)), neg.0(s.1(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ MNOCProof
↳ SemLabProof
↳ QDP
↳ DependencyGraphProof
↳ UsableRulesProof
COND.0-0-0(true., y0, neg.0(x1)) → MINUS.0-0(y0, minus_nat.0-0(s.1(0.), x1))
MINUS.0-0(y0, neg.0(x1)) → COND.0-0-0(greatereq_int.0-0(y0, minus_nat.0-0(s.1(0.), x1)), y0, neg.0(x1))
MINUS.0-0(y0, neg.1(x1)) → COND.0-0-0(greatereq_int.0-0(y0, minus_nat.0-1(s.1(0.), x1)), y0, neg.1(x1))
MINUS.1-0(y0, neg.0(x1)) → COND.0-1-0(greatereq_int.1-0(y0, minus_nat.0-0(s.1(0.), x1)), y0, neg.0(x1))
MINUS.1-0(y0, neg.1(x1)) → COND.0-1-0(greatereq_int.1-0(y0, minus_nat.0-1(s.1(0.), x1)), y0, neg.1(x1))
COND.0-0-0(true., y0, neg.1(x1)) → MINUS.0-0(y0, minus_nat.0-1(s.1(0.), x1))
COND.0-1-0(true., y0, neg.0(x1)) → MINUS.1-0(y0, minus_nat.0-0(s.1(0.), x1))
COND.0-1-0(true., y0, neg.1(x1)) → MINUS.1-0(y0, minus_nat.0-1(s.1(0.), x1))
minus_nat.1-0(0., s.1(y)) → neg.0(s.1(y))
greatereq_int.0-0(neg.1(x), pos.0(s.0(y))) → false.
greatereq_int.0-0(neg.1(x), pos.0(s.1(y))) → false.
minus_nat.1-0(0., s.0(y)) → neg.0(s.0(y))
minus_nat.0-0(s.1(x), s.1(y)) → minus_nat.1-1(x, y)
greatereq_int.0-0(pos.1(0.), pos.0(s.0(y))) → false.
greatereq_int.0-0(pos.0(x), neg.0(y)) → true.
minus_nat.0-0(s.1(x), s.0(y)) → minus_nat.1-0(x, y)
greatereq_int.0-0(pos.0(s.1(x)), pos.0(s.1(y))) → greatereq_int.0-0(pos.1(x), pos.1(y))
greatereq_int.0-0(neg.0(s.1(x)), neg.0(s.1(y))) → greatereq_int.0-0(neg.1(x), neg.1(y))
greatereq_int.0-0(pos.1(0.), pos.0(s.1(y))) → false.
greatereq_int.0-0(neg.0(s.0(x)), pos.1(0.)) → false.
greatereq_int.0-0(pos.1(x), neg.1(y)) → true.
minus_nat.1-1(0., 0.) → pos.1(0.)
greatereq_int.0-0(neg.0(s.1(x)), pos.1(0.)) → false.
greatereq_int.0-0(neg.0(s.0(x)), neg.0(s.0(y))) → greatereq_int.0-0(neg.0(x), neg.0(y))
minus_nat.0-1(s.0(x), 0.) → pos.0(s.0(x))
greatereq_int.0-0(pos.0(s.1(x)), pos.0(s.0(y))) → greatereq_int.0-0(pos.1(x), pos.0(y))
greatereq_int.0-0(pos.0(s.0(x)), pos.0(s.1(y))) → greatereq_int.0-0(pos.0(x), pos.1(y))
greatereq_int.0-0(neg.0(s.0(x)), neg.1(0.)) → false.
greatereq_int.0-0(pos.1(x), neg.0(y)) → true.
greatereq_int.0-0(pos.0(x), neg.1(y)) → true.
greatereq_int.0-0(neg.1(0.), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(x), pos.0(s.0(y))) → false.
greatereq_int.0-0(pos.0(s.0(x)), pos.0(s.0(y))) → greatereq_int.0-0(pos.0(x), pos.0(y))
greatereq_int.0-0(pos.1(x), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(s.1(x)), neg.0(s.0(y))) → greatereq_int.0-0(neg.1(x), neg.0(y))
greatereq_int.0-0(neg.0(s.0(x)), neg.0(s.1(y))) → greatereq_int.0-0(neg.0(x), neg.1(y))
minus_nat.0-1(s.1(x), 0.) → pos.0(s.1(x))
minus_nat.0-0(s.0(x), s.0(y)) → minus_nat.0-0(x, y)
greatereq_int.0-0(pos.0(x), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(s.1(x)), neg.1(0.)) → false.
greatereq_int.0-0(neg.1(0.), neg.1(y)) → true.
minus_nat.0-0(s.0(x), s.1(y)) → minus_nat.0-1(x, y)
greatereq_int.0-0(neg.1(0.), neg.0(y)) → true.
greatereq_int.0-0(neg.0(x), pos.0(s.1(y))) → false.
minus_nat.1-1(0., 0.)
minus_nat.1-0(0., s.0(x0))
minus_nat.1-0(0., s.1(x0))
minus_nat.0-1(s.0(x0), 0.)
minus_nat.0-1(s.1(x0), 0.)
minus_nat.0-0(s.0(x0), s.0(x1))
minus_nat.0-0(s.0(x0), s.1(x1))
minus_nat.0-0(s.1(x0), s.0(x1))
minus_nat.0-0(s.1(x0), s.1(x1))
greatereq_int.0-0(pos.0(x0), pos.1(0.))
greatereq_int.0-0(pos.1(x0), pos.1(0.))
greatereq_int.0-0(neg.1(0.), pos.1(0.))
greatereq_int.0-0(neg.1(0.), neg.0(x0))
greatereq_int.0-0(neg.1(0.), neg.1(x0))
greatereq_int.0-0(pos.0(x0), neg.0(x1))
greatereq_int.0-0(pos.0(x0), neg.1(x1))
greatereq_int.0-0(pos.1(x0), neg.0(x1))
greatereq_int.0-0(pos.1(x0), neg.1(x1))
greatereq_int.0-0(pos.1(0.), pos.0(s.0(x0)))
greatereq_int.0-0(pos.1(0.), pos.0(s.1(x0)))
greatereq_int.0-0(neg.0(x0), pos.0(s.0(x1)))
greatereq_int.0-0(neg.0(x0), pos.0(s.1(x1)))
greatereq_int.0-0(neg.1(x0), pos.0(s.0(x1)))
greatereq_int.0-0(neg.1(x0), pos.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), pos.1(0.))
greatereq_int.0-0(neg.0(s.1(x0)), pos.1(0.))
greatereq_int.0-0(neg.0(s.0(x0)), neg.1(0.))
greatereq_int.0-0(neg.0(s.1(x0)), neg.1(0.))
greatereq_int.0-0(pos.0(s.0(x0)), pos.0(s.0(x1)))
greatereq_int.0-0(pos.0(s.0(x0)), pos.0(s.1(x1)))
greatereq_int.0-0(pos.0(s.1(x0)), pos.0(s.0(x1)))
greatereq_int.0-0(pos.0(s.1(x0)), pos.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), neg.0(s.0(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), neg.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.1(x0)), neg.0(s.0(x1)))
greatereq_int.0-0(neg.0(s.1(x0)), neg.0(s.1(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ MNOCProof
↳ SemLabProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ UsableRulesProof
MINUS.0-0(y0, neg.0(x1)) → COND.0-0-0(greatereq_int.0-0(y0, minus_nat.0-0(s.1(0.), x1)), y0, neg.0(x1))
COND.0-0-0(true., y0, neg.0(x1)) → MINUS.0-0(y0, minus_nat.0-0(s.1(0.), x1))
minus_nat.1-0(0., s.1(y)) → neg.0(s.1(y))
greatereq_int.0-0(neg.1(x), pos.0(s.0(y))) → false.
greatereq_int.0-0(neg.1(x), pos.0(s.1(y))) → false.
minus_nat.1-0(0., s.0(y)) → neg.0(s.0(y))
minus_nat.0-0(s.1(x), s.1(y)) → minus_nat.1-1(x, y)
greatereq_int.0-0(pos.1(0.), pos.0(s.0(y))) → false.
greatereq_int.0-0(pos.0(x), neg.0(y)) → true.
minus_nat.0-0(s.1(x), s.0(y)) → minus_nat.1-0(x, y)
greatereq_int.0-0(pos.0(s.1(x)), pos.0(s.1(y))) → greatereq_int.0-0(pos.1(x), pos.1(y))
greatereq_int.0-0(neg.0(s.1(x)), neg.0(s.1(y))) → greatereq_int.0-0(neg.1(x), neg.1(y))
greatereq_int.0-0(pos.1(0.), pos.0(s.1(y))) → false.
greatereq_int.0-0(neg.0(s.0(x)), pos.1(0.)) → false.
greatereq_int.0-0(pos.1(x), neg.1(y)) → true.
minus_nat.1-1(0., 0.) → pos.1(0.)
greatereq_int.0-0(neg.0(s.1(x)), pos.1(0.)) → false.
greatereq_int.0-0(neg.0(s.0(x)), neg.0(s.0(y))) → greatereq_int.0-0(neg.0(x), neg.0(y))
minus_nat.0-1(s.0(x), 0.) → pos.0(s.0(x))
greatereq_int.0-0(pos.0(s.1(x)), pos.0(s.0(y))) → greatereq_int.0-0(pos.1(x), pos.0(y))
greatereq_int.0-0(pos.0(s.0(x)), pos.0(s.1(y))) → greatereq_int.0-0(pos.0(x), pos.1(y))
greatereq_int.0-0(neg.0(s.0(x)), neg.1(0.)) → false.
greatereq_int.0-0(pos.1(x), neg.0(y)) → true.
greatereq_int.0-0(pos.0(x), neg.1(y)) → true.
greatereq_int.0-0(neg.1(0.), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(x), pos.0(s.0(y))) → false.
greatereq_int.0-0(pos.0(s.0(x)), pos.0(s.0(y))) → greatereq_int.0-0(pos.0(x), pos.0(y))
greatereq_int.0-0(pos.1(x), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(s.1(x)), neg.0(s.0(y))) → greatereq_int.0-0(neg.1(x), neg.0(y))
greatereq_int.0-0(neg.0(s.0(x)), neg.0(s.1(y))) → greatereq_int.0-0(neg.0(x), neg.1(y))
minus_nat.0-1(s.1(x), 0.) → pos.0(s.1(x))
minus_nat.0-0(s.0(x), s.0(y)) → minus_nat.0-0(x, y)
greatereq_int.0-0(pos.0(x), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(s.1(x)), neg.1(0.)) → false.
greatereq_int.0-0(neg.1(0.), neg.1(y)) → true.
minus_nat.0-0(s.0(x), s.1(y)) → minus_nat.0-1(x, y)
greatereq_int.0-0(neg.1(0.), neg.0(y)) → true.
greatereq_int.0-0(neg.0(x), pos.0(s.1(y))) → false.
minus_nat.1-1(0., 0.)
minus_nat.1-0(0., s.0(x0))
minus_nat.1-0(0., s.1(x0))
minus_nat.0-1(s.0(x0), 0.)
minus_nat.0-1(s.1(x0), 0.)
minus_nat.0-0(s.0(x0), s.0(x1))
minus_nat.0-0(s.0(x0), s.1(x1))
minus_nat.0-0(s.1(x0), s.0(x1))
minus_nat.0-0(s.1(x0), s.1(x1))
greatereq_int.0-0(pos.0(x0), pos.1(0.))
greatereq_int.0-0(pos.1(x0), pos.1(0.))
greatereq_int.0-0(neg.1(0.), pos.1(0.))
greatereq_int.0-0(neg.1(0.), neg.0(x0))
greatereq_int.0-0(neg.1(0.), neg.1(x0))
greatereq_int.0-0(pos.0(x0), neg.0(x1))
greatereq_int.0-0(pos.0(x0), neg.1(x1))
greatereq_int.0-0(pos.1(x0), neg.0(x1))
greatereq_int.0-0(pos.1(x0), neg.1(x1))
greatereq_int.0-0(pos.1(0.), pos.0(s.0(x0)))
greatereq_int.0-0(pos.1(0.), pos.0(s.1(x0)))
greatereq_int.0-0(neg.0(x0), pos.0(s.0(x1)))
greatereq_int.0-0(neg.0(x0), pos.0(s.1(x1)))
greatereq_int.0-0(neg.1(x0), pos.0(s.0(x1)))
greatereq_int.0-0(neg.1(x0), pos.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), pos.1(0.))
greatereq_int.0-0(neg.0(s.1(x0)), pos.1(0.))
greatereq_int.0-0(neg.0(s.0(x0)), neg.1(0.))
greatereq_int.0-0(neg.0(s.1(x0)), neg.1(0.))
greatereq_int.0-0(pos.0(s.0(x0)), pos.0(s.0(x1)))
greatereq_int.0-0(pos.0(s.0(x0)), pos.0(s.1(x1)))
greatereq_int.0-0(pos.0(s.1(x0)), pos.0(s.0(x1)))
greatereq_int.0-0(pos.0(s.1(x0)), pos.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), neg.0(s.0(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), neg.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.1(x0)), neg.0(s.0(x1)))
greatereq_int.0-0(neg.0(s.1(x0)), neg.0(s.1(x1)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
COND.0-0-0(true., y0, neg.0(x1)) → MINUS.0-0(y0, minus_nat.0-0(s.1(0.), x1))
Used ordering: Polynomial interpretation [POLO]:
MINUS.0-0(y0, neg.0(x1)) → COND.0-0-0(greatereq_int.0-0(y0, minus_nat.0-0(s.1(0.), x1)), y0, neg.0(x1))
POL(0.) = 0
POL(COND.0-0-0(x1, x2, x3)) = 1 + x3
POL(MINUS.0-0(x1, x2)) = 1 + x2
POL(false.) = 0
POL(greatereq_int.0-0(x1, x2)) = 0
POL(minus_nat.0-0(x1, x2)) = x2
POL(minus_nat.1-0(x1, x2)) = 1 + x2
POL(minus_nat.1-1(x1, x2)) = 0
POL(neg.0(x1)) = 1 + x1
POL(neg.1(x1)) = 0
POL(pos.0(x1)) = 0
POL(pos.1(x1)) = 0
POL(s.0(x1)) = 1 + x1
POL(s.1(x1)) = 0
POL(true.) = 0
minus_nat.0-0(s.1(x), s.1(y)) → minus_nat.1-1(x, y)
minus_nat.1-0(0., s.0(y)) → neg.0(s.0(y))
minus_nat.1-0(0., s.1(y)) → neg.0(s.1(y))
minus_nat.0-0(s.1(x), s.0(y)) → minus_nat.1-0(x, y)
minus_nat.1-1(0., 0.) → pos.1(0.)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ MNOCProof
↳ SemLabProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ UsableRulesProof
MINUS.0-0(y0, neg.0(x1)) → COND.0-0-0(greatereq_int.0-0(y0, minus_nat.0-0(s.1(0.), x1)), y0, neg.0(x1))
minus_nat.1-0(0., s.1(y)) → neg.0(s.1(y))
greatereq_int.0-0(neg.1(x), pos.0(s.0(y))) → false.
greatereq_int.0-0(neg.1(x), pos.0(s.1(y))) → false.
minus_nat.1-0(0., s.0(y)) → neg.0(s.0(y))
minus_nat.0-0(s.1(x), s.1(y)) → minus_nat.1-1(x, y)
greatereq_int.0-0(pos.1(0.), pos.0(s.0(y))) → false.
greatereq_int.0-0(pos.0(x), neg.0(y)) → true.
minus_nat.0-0(s.1(x), s.0(y)) → minus_nat.1-0(x, y)
greatereq_int.0-0(pos.0(s.1(x)), pos.0(s.1(y))) → greatereq_int.0-0(pos.1(x), pos.1(y))
greatereq_int.0-0(neg.0(s.1(x)), neg.0(s.1(y))) → greatereq_int.0-0(neg.1(x), neg.1(y))
greatereq_int.0-0(pos.1(0.), pos.0(s.1(y))) → false.
greatereq_int.0-0(neg.0(s.0(x)), pos.1(0.)) → false.
greatereq_int.0-0(pos.1(x), neg.1(y)) → true.
minus_nat.1-1(0., 0.) → pos.1(0.)
greatereq_int.0-0(neg.0(s.1(x)), pos.1(0.)) → false.
greatereq_int.0-0(neg.0(s.0(x)), neg.0(s.0(y))) → greatereq_int.0-0(neg.0(x), neg.0(y))
minus_nat.0-1(s.0(x), 0.) → pos.0(s.0(x))
greatereq_int.0-0(pos.0(s.1(x)), pos.0(s.0(y))) → greatereq_int.0-0(pos.1(x), pos.0(y))
greatereq_int.0-0(pos.0(s.0(x)), pos.0(s.1(y))) → greatereq_int.0-0(pos.0(x), pos.1(y))
greatereq_int.0-0(neg.0(s.0(x)), neg.1(0.)) → false.
greatereq_int.0-0(pos.1(x), neg.0(y)) → true.
greatereq_int.0-0(pos.0(x), neg.1(y)) → true.
greatereq_int.0-0(neg.1(0.), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(x), pos.0(s.0(y))) → false.
greatereq_int.0-0(pos.0(s.0(x)), pos.0(s.0(y))) → greatereq_int.0-0(pos.0(x), pos.0(y))
greatereq_int.0-0(pos.1(x), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(s.1(x)), neg.0(s.0(y))) → greatereq_int.0-0(neg.1(x), neg.0(y))
greatereq_int.0-0(neg.0(s.0(x)), neg.0(s.1(y))) → greatereq_int.0-0(neg.0(x), neg.1(y))
minus_nat.0-1(s.1(x), 0.) → pos.0(s.1(x))
minus_nat.0-0(s.0(x), s.0(y)) → minus_nat.0-0(x, y)
greatereq_int.0-0(pos.0(x), pos.1(0.)) → true.
greatereq_int.0-0(neg.0(s.1(x)), neg.1(0.)) → false.
greatereq_int.0-0(neg.1(0.), neg.1(y)) → true.
minus_nat.0-0(s.0(x), s.1(y)) → minus_nat.0-1(x, y)
greatereq_int.0-0(neg.1(0.), neg.0(y)) → true.
greatereq_int.0-0(neg.0(x), pos.0(s.1(y))) → false.
minus_nat.1-1(0., 0.)
minus_nat.1-0(0., s.0(x0))
minus_nat.1-0(0., s.1(x0))
minus_nat.0-1(s.0(x0), 0.)
minus_nat.0-1(s.1(x0), 0.)
minus_nat.0-0(s.0(x0), s.0(x1))
minus_nat.0-0(s.0(x0), s.1(x1))
minus_nat.0-0(s.1(x0), s.0(x1))
minus_nat.0-0(s.1(x0), s.1(x1))
greatereq_int.0-0(pos.0(x0), pos.1(0.))
greatereq_int.0-0(pos.1(x0), pos.1(0.))
greatereq_int.0-0(neg.1(0.), pos.1(0.))
greatereq_int.0-0(neg.1(0.), neg.0(x0))
greatereq_int.0-0(neg.1(0.), neg.1(x0))
greatereq_int.0-0(pos.0(x0), neg.0(x1))
greatereq_int.0-0(pos.0(x0), neg.1(x1))
greatereq_int.0-0(pos.1(x0), neg.0(x1))
greatereq_int.0-0(pos.1(x0), neg.1(x1))
greatereq_int.0-0(pos.1(0.), pos.0(s.0(x0)))
greatereq_int.0-0(pos.1(0.), pos.0(s.1(x0)))
greatereq_int.0-0(neg.0(x0), pos.0(s.0(x1)))
greatereq_int.0-0(neg.0(x0), pos.0(s.1(x1)))
greatereq_int.0-0(neg.1(x0), pos.0(s.0(x1)))
greatereq_int.0-0(neg.1(x0), pos.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), pos.1(0.))
greatereq_int.0-0(neg.0(s.1(x0)), pos.1(0.))
greatereq_int.0-0(neg.0(s.0(x0)), neg.1(0.))
greatereq_int.0-0(neg.0(s.1(x0)), neg.1(0.))
greatereq_int.0-0(pos.0(s.0(x0)), pos.0(s.0(x1)))
greatereq_int.0-0(pos.0(s.0(x0)), pos.0(s.1(x1)))
greatereq_int.0-0(pos.0(s.1(x0)), pos.0(s.0(x1)))
greatereq_int.0-0(pos.0(s.1(x0)), pos.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), neg.0(s.0(x1)))
greatereq_int.0-0(neg.0(s.0(x0)), neg.0(s.1(x1)))
greatereq_int.0-0(neg.0(s.1(x0)), neg.0(s.0(x1)))
greatereq_int.0-0(neg.0(s.1(x0)), neg.0(s.1(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
COND(true, x, y) → MINUS(x, plus_int(pos(s(0)), y))
MINUS(x, y) → COND(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
minus(x0, x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
COND(true, x, y) → MINUS(x, plus_int(pos(s(0)), y))
MINUS(x, y) → COND(greatereq_int(x, plus_int(pos(s(0)), y)), x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))